2.2. iCalendar’s dependency on DST
The Internet Calendaring and Scheduling Core Object Specification, or iCalendar, is an Internet Engineering Task Force (IETF) proposed standard defined in the document RFC2445 (http://www.ietf.org/rfc/rfc2445.txt) and further described in a guide to calendaring RFC3283 (http://www.ietf.org/rfc/rfc3283.txt). In addition, specifications also exist that describe how iCalendar can be used for scheduling between multiple parties (RFC2446 (http://www.ietf.org/rfc/rfc2446.txt) and RFC 2447 (http://www.ietf.org/rfc/rfc2447.txt)).
iCalendar describes a data format to encapsulate calendaring data such as events and tasks which can be passed between different systems in an interoperable way. As part of this, timezone information is also required in order to allow times to be specified relative to a particular locality. To that end iCalendar defines a ‘VTIMEZONE’ object that encapsulates timezone information. These objects provide for both ‘STANDARD’ and ‘DAYLIGHT’ subcomponents that can be used to represent the standard timezone offset, as well as the timezone offset when DST is in effect. In addition, these sub-components also specify, via a set of rules or a list of explicit dates, the dates and times at which DST starts and ends. Typically rules are used, and those specify the DST changes from some point in the past, into the future for an indeterminate amount of time.